package robotninja.robotcontrol.api;

/**
 * Define the basic methods to control the movement of a robot.
 * 
 * @author dav
 * 
 */
public interface IRobotControl {

	/**
	 * Set a linear and angular speed for the robot.
	 * 
	 * @param x
	 *            linear speed on the x axis.
	 * @param y
	 *            linear speed on the y axis.
	 * @param z
	 *            linear speed on the z axis.
	 * @param pitch
	 *            angular speed.
	 * @param roll
	 *            angular speed.
	 * @param yaw
	 *            angular speed.
	 */
	void setSpeed(double x, double y, double z, double pitch, double roll,
			double yaw);
	
	/**
	 * Turn on/off the robot.
	 * @param state true for tuning on and false to turning off. 
	 * @return successful action.
	 */
	boolean turnOnOff(boolean state);
}
